<?php

class Maestras_model extends CI_Model {

    function __construct() {
        parent::__construct();
    }

    public function buscaUsuario($usuario, $contra, $opc) {
        if (trim($usuario) == "" || trim($contra) == "")
            exit("Debe ingresar un usuario y contraseña");
        /* Funcion para consultar si un usuario existe o no */
        switch ($opc) {
            case 'U': //busca si el usuario existe
                $sql = "select usr.*,dep.departamento,dep.departamentoId,par.* from usuarios usr
                            inner join participantes par on par.`participanteId` = usr.`participanteId`
                            left join departamentos dep on dep.`departamentoId` = usr.`departamentoId`
                            where usr.usuario = '$usuario' and usr.`usuarioContrasena` = md5('$contra')";
                return $this->db->query($sql);
                break;
        }
        return;
    }

// fin public function buscaUsuario($usuario,$contra,$opc){

    public function extAgentes($usuarioId, $opc = null) {
        /* Extrae todos los agentes que estan relacionados a las zonas del usuario */
        switch ($opc) {
            case '2': //agentes que pertenecen a un departamento
                $sql = "select agen.* from agentes agen
                inner join municipios muni on muni.`municipioId` = agen.`municipioId`
                inner join departamentos dep on dep.`departamentoId` = muni.`departamentoId`
                where dep.`departamentoId` = '$usuarioId' order by agen.agenteNombre";
                break;
            default :
                $sql = "select agen.* from agentes agen
                inner join municipios muni on muni.`municipioId` = agen.`municipioId`
                inner join departamentos dep on dep.`departamentoId` = muni.`departamentoId`
                inner join usuarios usr on usr.`departamentoId` = dep.departamentoId
                where usr.usuarioId = '$usuarioId' order by agen.agenteNombre";
                break;
        }
        return $this->db->query($sql);
    }

//extAgentes

    public function agente($agenteId) {
        /* Extrae informacion del agente */
        $sql = "select * from agentes where `agenteId` = '$agenteId' order by `agenteNombre` ";
        return $this->db->query($sql);
    }

    public function preguntas($instrumento) {
        /* Extrae todas las preguntas y posibles respuestas de una pregunta asociada a un instrumento */
        $sql = "select * from preguntas preg 
                where preg.instrumentoId = '$instrumento' order by preg.preguntaId";
        return $this->db->query($sql);
    }

    public function modalidades() {
        /* Extrae todas las modalidades del sistema */
        $sql = "select * from modalidades order by modalidadNombre ";
        return $this->db->query($sql);
    }

    public function modalidadesUsr($departamentoId, $instrumentoId) {
        /* Extrae todas las modalidades del sistema */
        $sql = "select agen.*,moda.* from agentes agen
                inner join municipios mun on mun.municipioId = agen.municipioId
                inner join modalidades moda on moda.modalidadId = agen.modalidadId
                left join aplicainstrumento apli on apli.`modalidadId` = moda.`modalidadId` and apli.`instrumentoId` = '$instrumentoId' 
                where mun.departamentoId = '$departamentoId' group by agen.modalidadId order by moda.`modalidadNombre`";
        $result = $this->db->query($sql);
        return $result;
    }

    public function transaccion($incremento) {
        /* Optiene el numero de la transaccion */
        $sql = "select transaccion from sistemas";
        $result = $this->db->query($sql);
        if ($result->num_rows() == 0) {
            $sql = "insert into sistemas(transaccion) values(1)";
            $this->db->query($sql);
            $sqql = "select transaccion from sistemas";
            $result = $this->db->query($sql);
        }
        $result = $result->result();
        $transaccion = $result[0]->transaccion;
        $transaccion++;
        $sql = "update sistemas set transaccion = ($transaccion + $incremento)";
        $this->db->query($sql);
        return $transaccion;
    }

    public function extraeRegistros($instrumento, $usuarioid, $opc = null) {
        /* Extrae todos los registros que ha realizado un usuario en un instrumento determidado */
        switch ($opc) {
            case '1':
                $sql = "select apli.* from aplicainstrumento apli 
                where apli.`instrumentoId` = '$instrumento' and pais = '$usuarioid' order by aplicaInstFecha";
                break;
            case '2':
                $sql = "select apli.* from aplicainstrumento apli 
                inner join municipios mun on mun.`municipioId` = apli.`municipioId`
                where apli.`instrumentoId` = '$instrumento' and mun.`departamentoId` = '$usuarioid' order by aplicaInstFecha";
                break;
            case '3': //Extrae la información de los instrumentos 6 que se registraron en el mismo programa que viene en $usuarioid
                $sql = "select apli.*,moda.modalidadNombre from aplicainstrumento apli 
                left join modalidades moda on moda.`modalidadId` = apli.`modalidadId` 
                where apli.`instrumentoId` = '$instrumento' and apli.`programaId` = '$usuarioid' order by apli.aplicaInstFecha";
                break;
            default:
                $sql = "select apli.*,moda.modalidadNombre from aplicainstrumento apli 
                left join modalidades moda on moda.`modalidadId` = apli.`modalidadId` 
                where apli.`instrumentoId` = '$instrumento' and `usuarioId` = '$usuarioid' order by aplicaInstFecha";
                break;
        }
        return $this->db->query($sql);
    }

    public function municipios($departamentoId) {
        /* Extrae todos los municipios de un departamento */
        $sql = "select * from municipios where `departamentoId` = '$departamentoId' order by municipio";
        return $this->db->query($sql);
    }

//fin public function municipios($departamentoId){

    public function instrumento($instrumentoId = null) {
        /* Funcion para extraer toda la informacion del instrumento */
        if ($instrumentoId != "")
            $sql = "select * from instrumentos where `instrumentoId` = '$instrumentoId'";
        else
            $sql = "select * from instrumentos order by `instrumentoId` limit 6";
        return $this->db->query($sql);
    }

    public function infoUsuario($partId, $opc = null) {
        /* funcion para extraer toda la informacion asociada al participante */
        switch ($opc) {
            case '2': //informacion basica del usuario
                $sql = "select *,par.`participanteNombres` as nombres from participantes par
                inner join usuarios usr on par.`participanteId` = usr.`participanteId`
                where par.`participanteId` = '$partId'";
                break;

            case '3':
                $sql = "select *,par.`participanteNombres` as nombres,par2.`participanteNombres` as nombre2 from participantes par
                inner join usuarios usr on par.`participanteId` = usr.`participanteId`
                inner join departamentos dep on dep.`departamentoId` = usr.`departamentoId`
                left join usuarios usr2 on usr2.`zonaId` = dep.`zonaId` and (usr2.`departamentoId` IS NULL or usr2.`departamentoId` = '')
                left join participantes par2 on par2.`participanteId` = usr2.`participanteId`                
                where usr.`departamentoId` = '$partId' limit 1";
//                exit($sql);
                break;
            default:
                $sql = "select *,par.`participanteNombres` as nombres,par2.`participanteNombres` as nombre2 from participantes par
                inner join usuarios usr on par.`participanteId` = usr.`participanteId`
                inner join departamentos dep on dep.`departamentoId` = usr.`departamentoId`
                left join usuarios usr2 on usr2.`zonaId` = dep.`zonaId`
                left join participantes par2 on par2.`participanteId` = usr2.`participanteId`
                where par.`participanteId` = '$partId'";
                break;
        }
        return $this->db->query($sql);
    }

    public function modalidadInfo($modalidadId) {
        /* funcion para extraer toda la informacion asociada a la modalidad */
        $sql = "select * from modalidades where `modalidadId` = '$modalidadId'";
        return $this->db->query($sql);
    }

//fin modalidadInfo

    public function instrumentosCampo() {
        /* Funcion para extaer todos los instrumentos que hacen parte de la interpretacion de trabajo de campo */
        $sql = "select * from instrumentos where `instrumentoId` >= 9 and instrumentoId < 19 order by `instrumentoNumero` ";
        return $this->db->query($sql);
    }

// fin public function instrumentosCampo(){

    public function zonas() {
        /* Funcion para obtener todas las zonas del sistema */
        $sql = "select * from zonas order by `zonaNombre` ";
        return $this->db->query($sql);
    }

//fin public function zonas(){

    public function departamentoInfo($deptarmentoId) {
        /* Extrae la informacion básica de un departamento */
        $sql = "select * from departamentos where `departamentoId` = '$deptarmentoId'";
        $result = $this->db->query($sql)->result();
        return $result[0];
    }

}

//fin class
?>
